package utils.text;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

/**
 * 在文本的每行中查找字符串
 * 
 * @author:张三石
 * @since:2021年9月14日 上午9:15:25
 */
public class FindStrOnLine {

	public static int count = 0;

	public static void main(String[] args) {
		File file = new File("C:\\Users\\o.o\\Desktop\\core");
		new FindStrOnLine().loop(file);
		System.out.println("count = " + count);
	}

	void loop(File file) {
		if (file.isDirectory()) {
			File[] files = file.listFiles();
			for (File obj : files) {
				loop(obj);
			}
		} else {
			readFileContent(file, "需要查找的字符串");
		}
	}

	public static void readFileContent(File file, String target) {

		try (BufferedReader reader = new BufferedReader(new FileReader(file));) {
			String tempStr;
			while ((tempStr = reader.readLine()) != null) {
				if (tempStr.indexOf(target) != -1) {// 指定替换的文字，搜索到结果后会打印该文件所在路径
					count++;
					System.out.println(file.getPath());
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
